1. Field of the Invention
The present invention relates to a system, code and method for solving different optimization problems using a library of prestored data groups (or “advanced bases”) pertaining to anticipated optimization problems.
2. Description of the Related Art
Various types of optimization software packages are available for solving optimization problems that parallel real life problems. Typically, such software packages include sophisticated computer programs that solve mathematical equations which are in essence modeled after the real life problems to be solved. By solving the equations, solutions to the actual problems are suggested.
Solving different optimization problems may require the use of different types of algorithms, such as the quadratic, linear or integer algorithm well known in the art. A quadratic optimization problem is an optimization problem requiring the use of the quadratic algorithm, whereas an integer/linear optimization problem is an optimization problem requiring the use of the integer/linear algorithm. Quadratic optimization problems generally can be represented in the following mathematical algorithm:                Minimize xCx        subject to: Ax=bwhere x≧0  (Equation 1)wherein C is a cost matrix, x is a column vector (variable to be solved for), A is an array of coefficients (matrix) representing constraints, and b is a RHS (Right Hand Side) column vector representing constraints. A typical quadratic optimization problem might involve, for example, determining a list of financial assets that minimizes the variance of a financial portfolio at a given return. This problem may be solved using above Equation (1) by defining the terms as follows:        x: % of given stock in portfolio,        A: matrix with certain coefficients representing stock composition requirements,        b: vector representing the minimum rate of return, and        C: covariance matrix representing rate of return relations between different stocks. Linear and integer optimization problems generally involve solving the following mathematical algorithm:        Minimize Cx        subject to: Ax=bwhere x≧0  (Equation 2)wherein C is a vector representing costs per unit, x is a column vector, A is an array of coefficients (matrix) representing constraints, and b is a RHS (Right Hand Side) column vector representing constraints. In linear optimization problems, x in Equation (2) represents real numbers, whereas in integer optimization problems, x represents only the integers. The task of determining the exact amount and types of foods that a user can consume to satisfy certain nutritional requirements at minimum food costs is an example of a linear optimization problem. In situations where the units of interest cannot be divided into parts, the integer optimization model is utilized. For example, an integer optimization problem could be used in a personnel scheduling task wherein a determination must be made as to a minimum number of workers who must work during each shift at the lowest possible cost, given a number of expected customers, workers' desired schedules, and other factors. Since a person cannot be divided into parts, workers must be represented as integers.        
In solving these types of optimization problems, conventional optimization methods generally start the calculations using basic “starting data” (e.g., all zeros) and iterate the same calculations on resultant data until an optimal solution is obtained. For example, in U.S. Pat. No. 6,031,984 to Walser, which is herein fully incorporated by reference, optimization problems are solved by initializing the variables of a constraint model and iterating certain calculations using the constraint model until an optimal solution is found.
Although these conventional methods may be acceptable in solving simple optimization problems, a problem arises if a more complex optimization problem needs to be solved. A complex optimization problem generally requires a large number of iterations and solving multiple equations before an optimal solution to the problem can be found. Thus, depending on the type of problem and basic starting data, the processing time for the conventional methods can be extremely long. In user-interactive systems that require timely responses, such as Internet-based systems, the conventional methods are thus unable to provide solutions to optimization problems in a timely manner.
In view of the above and other problems with conventional optimization methods, a need exists for a technique by which more efficient and timely optimization computations can be performed. A further need exists for a technique that minimizes the time required to find optimal solutions to an optimization problem, especially in user-interactive applications such as Internet-based applications.